<?php

namespace Comments\TagLib;

class Comments
{

    public $db, $table_name, $modelid, $where;

    /**
     * 组合查询条件
     * @param type $attr
     * @return type
     */
    public function where($attr)
    {

        $this->where = [];
    }

    public function install()
    {
        return true;
    }


    /**
     * 内容列表（lists）
     * 参数名     是否必须     默认值     说明
     * catid     否     null     调用栏目ID
     * where     否     null     sql语句的where部分
     * thumb     否     0     是否仅必须缩略图
     * order     否     null     排序类型
     * num     是     null     数据调用数量
     * moreinfo     否     0     是否调用副表数据 1为是
     *
     * moreinfo参数属性，本参数表示在返回数据的时候，会把副表中的数据也一起返回。一个内容模型分为2个表，一个主表一个副表，主表中一般是保存了标题、所属栏目等等短小的数据（方便用于索引），而副表则保存了大字段的数据，如内容等数据。在模型管理中新建字段的时候，是允许你选择存入到主表还是副表的（我们推荐的是，把不重要的信息放到副表中）。
     * @param $data
     */
    public function lists($data)
    {

        $cache = (int)$data['cache'];
        $cacheID = to_guid_string($data);
        if ($cache && $return = S($cacheID))
        {
            return $return;
        }
        $this->where($data);

        if (!isset($data['limit']))
        {
            $data['limit'] = (int)$data['num'] == 0 ? 10 : (int)$data['num'];
        }
        //排序
        if (empty($data['order']))
        {
            $data['order'] = array( 'id' => 'DESC');
        }

        $this->db=M("comment");

        $dataList=  $this->db->where($this->where)->limit($data['limit'])->order($data['order'])->select();
        $getLastSql[] = $this->db->getLastSql();

        if ($dataList)
        {
            $return = array();
            foreach ($dataList as $r)
            {
                $r['link']=$r['url'];
                $r['catename']=$r['catname'];
                $r['pic']=$r['thumb'];
                $return[$r['id']] = $r;
                //调用副表的数据
                if (isset($data['moreinfo']) && intval($data['moreinfo']) == 1)
                {
                    $this->db->dataMerger($return[$r['id']]);
                }
                if ($data['output'])
                {
                    $_original = $return[$r['id']];
                    $return[$r['id']] = ShuipFCMS()->ContentOutput->get($return[$r['id']]);
                    $return[$r['id']]['_original'] = $_original;
                }
            }
        }
        else
        {
            return false;
        }
        //结果进行缓存
        if ($cache)
        {
            S($cacheID, $return, $cache);
        }
        //log
        if (APP_DEBUG)
        {
            $msg = "comments标签->lists：参数： order={$data['order']}\n";
            $msg .= "SQL:" . implode("\n", $getLastSql);
            \Think\Log::record($msg, \Think\Log::DEBUG);
        }
        return $return;

    }

    public function get_comment($attr)
    {
        $where = array();
        //设置SQL where 部分
        if (isset($attr['where']) && $attr['where'])
        {
            $where['_string'] = $attr['where'];
        }

        return ['1' => ['username' => 'hello']
            , '2' => ['username' => 'world']
        ];
    }
}
